package com.sc.crud;

import java.io.Serializable;

/**
 * 基础的增、查、删、改接口
 * @param <T> 被操作的具体实体对象类别
 */
public interface ICrud<T> {
    /**
     * 添加数据库信息
     * @param entity    需要添加的实体
     * @return          受影响行数
     */
    int insert(T entity);

    /**
     * 根据id查看数据库表的指定实体信息
     * @param id        实体id，可能为String类型，也可能为int/Integer类型
     * @return          指定实体信息
     */
    T select(Serializable id);

    /**
     * 根据id删除数据库表的指定实体信息
     * @param id        实体id，可能为String类型，也可能为int/Integer类型
     * @return          受影响行数
     */
    int delete(Serializable id);

    /**
     * 更新数据表中的指定信息
     * @param entity   需要更新的实体信息，包含id或指定更新范围的字段信息，同时包含需要更新成什么
     * @return         受影响行数
     */
    int update(T entity);

}
